//  ajaxPrefilter   只要发送ajax 请求 就会触发这个函数  
//  ajaxPrefilter  我们可以拿到当前发送请求的ajax的配置


/*
  let obj = {}
  $.ajax( 
    { 
      type:"get",
      url:"请求的地址",
      data:{},
      success: res => {},

      // complte 只要发送请求完成 就会触发  complete
      complete: res => {

      }

    } 
     )



*/ 



$.ajaxPrefilter(function(options){
  // options  指向的就是 $.ajax的那个配置对象 
  // console.log(`发送了请求`)
  // console.log(options,'options')


  // http://big-event-api-t.itheima.net  测试的接口 
  // http://www.liulongbin.top:3007 测试的接口 

  options.url =  `http://big-event-api-t.itheima.net` + options.url 



  //  1   统一为有权限的接口设置`headers`请求头
  //  2 只有以 /my 开头的 才需要携带请求头 【接口文档告诉我们的 ==》 接口文档中看不到 因为那个接口随便一写】
  //  2.1 判断 接口中 是否带有 /my    ===>   /my/地址  这样的需要 带上请求头  /myabc 这个不需要带请求头

  if (options.url.includes('/my/')) {
    // 进入这个判断说明 需要设置请求头 

    // d.4.2  headers  在jq 中相当于 固定写法 
    options.headers = {
      //  Authorization  是接口文档中要求的数据 
      //  值  要求的是一个token 值  ==》 在登录成功之后 存到本地存储 
      // d.4.3 注意 这里需要 在登录login.js 里面 把 token 存储到本地存储 
      Authorization:  localStorage.getItem('token') ||  ''
    }


    //  这个里面是有权限的接口   所有的有权限的接口都要判断 
    options.complete  =  function(res){
      // 只要发送请求 无论响应成功还是失败 最终都会执行这个里面的代码 
      // console.log(res)
      //  后端接口文档中 会告诉我们的 如果状态码是 1 并且 返回的错误消息是 身份认证失败！  就表明 未登录 

      // res.responseJSON    complete 里面 返回的数据字段和 success 里面不太一样 

      if(res.responseJSON.status == 1  &&  res.responseJSON.message == '身份认证失败！') {
        // 身份认证失败！  这个需要从返回的里面 来复制 
        console.log(`进入这个判断说明没token 或者token 过期`)

        localStorage.removeItem('token')

        location.href="/login.html"
      }
    }

  }





})

